Skip to content

fix(request-normalizer): 重设计 zhipu→anthropic 跨供应商 tool_use/tool_result 配对修复#188

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
vk/a921-fix-vendor-zhipu
Apr 17, 2026
Merged

fix(request-normalizer): 重设计 zhipu→anthropic 跨供应商 tool_use/tool_result 配对修复#188
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
vk/a921-fix-vendor-zhipu

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

Summary

  • 以单遍自包含的 enforce_anthropic_tool_pairing 替代原有多步串联管线(剥离→重定位→孤儿修复),消除步骤间隐式依赖导致的孤儿 tool_use 漏修
  • 彻底根治 zhipu→anthropic 切换时 tool_use ids were found without tool_result blocks 400 异常
  • 新增 _needs_tool_pairing_enforcement() 扩展触发条件,覆盖会话历史含非 Anthropic 供应商但请求体无显式跨供应商产物的场景

Test plan

  • 新增 13 个测试用例覆盖全部场景(含真实 bug 复现 toolu_normalized_5,6,7
  • 全量 1226 测试通过,零回归
  • 启动 proxy,复现 zhipu→anthropic 运行时切换场景,确认无 400 错误

🤖 Generated with Claude Code

…t 配对修复,以单遍自包含函数替代多步串联管线;

以 `enforce_anthropic_tool_pairing` 单次正向遍历替代原有多步串联管线
(剥离→重定位→孤儿修复),消除步骤间隐式依赖导致的孤儿 tool_use 漏修,
彻底根治 `tool_use ids were found without tool_result blocks` 400 异常。

- 新增 `enforce_anthropic_tool_pairing()` 函数(单遍、自包含、幂等)
- 新增 `_needs_tool_pairing_enforcement()` 扩展触发条件,覆盖会话历史含非 Anthropic 供应商的场景
- 新增 13 个测试用例覆盖全部场景(含真实 bug 复现)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI
ThreeFish-AI merged commit 9712ee1 into feature/1.x.x Apr 17, 2026
6 checks passed
@ThreeFish-AI
ThreeFish-AI deleted the vk/a921-fix-vendor-zhipu branch April 17, 2026 14:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant